home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / programs / amigabase / bugs < prev    next >
Text File  |  1996-04-14  |  2KB  |  46 lines

  1. Known Bugs:
  2. ===========
  3.  
  4. AmigaBase functions like BOLD OFF, ITALIC OFF, etc. don't work with the
  5. "CON:" device under OS 1.3 because "CON:" only recognizes the NORMAL
  6. escape sequence.
  7.  
  8. If you enter a value of 3 for the memo height you will get a real height
  9. of 4 lines. This is because (3*(fh+2+2) - 2 - 2) / fh is 4
  10. (fh is the font height, e.g. 8).
  11.  
  12. When programming recursive functions you can't call a recursive function
  13. in a sub expression, otherwise you will get wrong results, e.g. if you have
  14. a function called _Fib which takes one integer argument and returns an integer
  15. value, the following code will return wrong results:
  16.    BEGIN
  17.       IF arg1 < 2 THEN
  18.          RETURN 1;
  19.       ELSE
  20.          RETURN (_Fib(arg1 - 1) + _Fib(arg1 - 2)); # _Fib in a sub expression
  21.       END
  22.    END
  23. However the following code works:
  24.    VAR i, j: INTEGER;
  25.    BEGIN
  26.       IF arg1 < 2 THEN
  27.          RETURN 1;
  28.       ELSE
  29.          i := _Fib(arg1 - 1);         # _Fib not in a sub expression
  30.          j := _Fib(arg1 - 2);         # _Fib not in a sub expression
  31.          RETURN (i + j);
  32.       END
  33.    END
  34. Thanks to Petra Mössner for showing how complex this problem is.
  35.  
  36. Do not use the CALL function to send an ARexx command to the
  37. AmigaBase ARexx port or AmigaBase will hang. E.g. if you use
  38. CALL("REXX:rx \"ADDRESS 'REXX_AB1' SAVE\"") for saving the
  39. current project it won't work (and AmigaBase will hang).
  40. This is because ARexx commands are only processed when AmigaBase
  41. is in its idle state and this will never happen because AmigaBase
  42. waits on the CALL command to finish.
  43. However for solving the above problem you can launch a background
  44. task by writing CALL("C:RUN >NIL: REXX:rx \"ADDRESS 'REXX_AB1' SAVE\"").
  45.  
  46.